Stepper motor drivers ordinarily provide a step clock of a fixed frequency to activate circuitry in the driver electronics to sample and apply current to the windings or "phases" of the associated stepper motor. The amount of current to be applied is a direct function of the desired position of the motor shaft. For rotational motion, current is applied to opposing windings in a stepper motor in a quadrature manner. In a micro-stepping driver, phase currents are applied as a Sine wave to one phase and a Cosine wave to the opposing phase with motor position defined at discrete points along the Sine and Cosine waveforms. Each pulse from an associated step clock, advances the motor to the next position, following the Sine and Cosine drive steps. For smooth motor rotation, the step clock is continuously applied at a fast rate, causing the motor to repetitively move through the micro-stepping sequence. To hold the motor at a fixed position, the motor driver must apply a constant current to each winding having a magnitude represented by the value of the Sine and Cosine waveform at the desired position.
Since the motor windings comprise a continuous coil of wire, they exhibit both inductive and resistive characteristics and an associated time constant related to the rise and decay of the applied current. To regulate current, stepper motor drivers periodically apply and remove voltage to the motor windings since the constant application of voltage would otherwise result in excessive power consumption. Since the applied current decays with time after voltage is removed, positional phase current is periodically recharged in each winding to hold the motor at a predetermined position. This is usually accomplished by switching a high voltage across each winding and allowing the current to increase until the motor reaches the predetermined value then rapidly switching off the voltage.
The fixed frequency motor driver clock as currently employed, provides gating to the motor driver electronics to apply and sample the phase currents in the windings and to determine whether the current has reached the desired value. When the driver circuitry is gated on to apply and sample the current in each winding, a reference value is generated from a D to A converter which produces the digital representation of the Sine or Cosine wave of the applied current and the actual phase current in each winding is then compared to the reference value.
When applying operating current to a motor winding on the rising waveform edge, a high voltage is applied across the winding until the phase current in the winding reaches the reference value.
On the falling edge of the current waveform, the current must be removed from the winding in order to replicate the Sine or Cosine waveform in the downward direction. This is usually accomplished using either a so-called "fast" or "slow" decay method. In the "fast" decay approach, the winding is connected between ground and the applied voltage through a diode bridge. At the moment the upper and lower switches are turned OFF, the voltage across the winding is slightly greater than the applied voltage resulting in increased energy dissipation. The fast decay results from the winding inductance described earlier which sustains current flow-at the instant that the switch is opened. In the "slow" decay approach the high side switch is turned off so that the low side of the winding is slightly below ground and the high side of the winding is slightly above ground resulting in a low voltage drop across the winding which greatly reduces energy dissipation.
If a circuit is used which only provides a fast decay setting, too much ripple is produced in the driving current to the motor resulting in decreased efficiency. If a circuit is used which only provides a slow decay setting, efficiency is increased but not enough current is removed resulting in distorted motion and an increased possibility of creating resonance.
Prior Art circuits used for sampling and controlling phase current to stepper driver motor windings typically gate each phase current simultaneously and apply drive current to the motor windings in the manner described earlier. Since each phase current usually does not require the same on-time, a Sine wave and a Cosine wave applied to the opposing currents results in one phase current arriving at the desired value before the other. When the motor driver circuit respondingly switches the first phase current off, a resulting current spike is induced in the second phase current due to cross interference. If the induced current spike is of sufficient magnitude the second phase current is immediately turned off since the phase current that the circuit erroneously detects has reached the reference value.
Prior art circuits also provide for a fixed fast decay time when trying to remove current on the falling side of the waveform. With this fast decay time, ripple current is decreased and efficiency is increased. However, this method is usually accomplished by selecting a time constant for the fast decay time as a portion of the entire cycle. This time constant has to be varied as a function of motor winding resistance and inductance, and the voltage used to drive the coils.
Another disadvantage of using a fixed fast decay setting is that there is much more energy stored in the coils of the motor when it is near the peak of the waveform than at the zero crossing. With a fixed time constant there will be a larger amount of current removed from the top of the wave and very little at the zero crossing. This creates in a high ripple current near the peak of the waveform and not enough current being removed around the zero crossing resulting in poor control.